package main

import (
	"fmt"
	"reflect"
)

func reflectValue(x interface{}) {
	// 通过reflect.ValueOf来获取x的类型
	v := reflect.ValueOf(x)
	if v.Kind()==reflect.Int64{
		v.SetInt(120)
	}
}

func reflectSetValue(x interface{}){
	// *x = 120
	// v ,_:=x.(*int)
	// *v =120

	v :=reflect.ValueOf(x)
	fmt.Println(v.Kind())  //ptr
	// 通过.Elem().Kind()获取指针类型
	fmt.Println(v.Elem().Kind()) 
	if v.Elem().Kind() == reflect.Int64{
		v.Elem().SetInt(123)
	}
}
func main() {
	var a int64 = 100
	reflectSetValue(&a)
	fmt.Println(a)
}